import { IParam } from '../../common';

export interface ITreeNodeModel {
	/**
	 * 允许拖到节点
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	allowDrag: boolean;

	/**
	 * 允许拖入节点
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	allowDrop: boolean;

	/**
	 * 允许编辑节点文本
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	allowEditText: boolean;

	/**
	 * 允许节点排序
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	allowOrder: boolean;

	/**
	 * 应用实体标识
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	entityCodeName?: string;

	/**
	 * 主键属性
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	keyPSAppDEField?: string;

	/**
	 *主信息属性
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	majorPSAppDEField?: string;

	/**
	 * 应用实体数据集
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	appDeDataSet?: string;

	/**
	 * 附加标题
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	appendCaption?: boolean;

	/**
	 * 附加父节点标识
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	appendPNodeId: boolean;

	/**
	 * 代码表标识
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	codeListTag?: string;

	/**
	 * 计数器标识
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	counterId: string;

	/**
	 * 计数器模式 {0：默认、 1：0 值时隐藏 }
	 *
	 * @type {number}
	 * @memberof ITreeNodeModel
	 */
	counterMode: number;

	/**
	 * 节点样式表
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	cssName?: string;

	/**
	 * 树节点数据项集合
	 *
	 * @type {(any[] | null)}
	 * @memberof ITreeNodeModel
	 */
	deTreeNodeDataItems?: any[] | null;

	/**
	 * 禁止选择
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	disableSelect: boolean;

	/**
	 * 支持选中
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	enableCheck: boolean;

	/**
	 * 支持快速搜索
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	enableQuickSearch: boolean;

	/**
	 * 仅展开首节点
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	expandFirstOnly: boolean;

	/**
	 * 默认展开
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	expanded: boolean;

	/**
	 * 是否为子叶
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	leaf: boolean;

	/**
	 * 节点标识(API 计算唯一值)
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	id: string;

	/**
	 * 图片样式
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	cssClass?: string;

	/**
	 * 图片路径
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	imagePath?: string;

	/**
	 * 节点过滤属性
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	navFilter: string;

	/**
	 * 导航上下文
	 *
	 * @type {IParam}
	 * @memberof ITreeNodeModel
	 */
	navigateContext?: IParam;

	/**
	 * 导航参数
	 *
	 * @type {IParam}
	 * @memberof ITreeNodeModel
	 */
	navigateParams?: IParam;

	/**
	 * 导航视图名称
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	navViewName?: string;

	/**
	 * 节点标识
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	nodeType: string;

	/**
	 * 节点值
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	nodeValue?: string;

	/**
	 * 根节点
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	rootNode: boolean;

	/**
	 * 仅选择首节点
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	selectFirstOnly: boolean;

	/**
	 * 默认选择
	 *
	 * @type {boolean}
	 * @memberof ITreeNodeModel
	 */
	selected: boolean;

	/**
	 * 排序方向
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	sortDir?: string;

	/**
	 * 节点文本格式化
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	textFormat?: string;

	/**
	 * 文本
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	text?: string;

	/**
	 * 提示信息
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	tooltip?: string;

	/**
	 * 提示信息语言资源
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	tooltipLanResTag?: string;

	/**
	 * 标题多语言
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	lanResTag?: string;

	/**
	 * 节点类型
	 *
	 * @type {('STATIC' | 'DE' | 'CODELIST' | string)}
	 * @memberof ITreeNodeModel
	 */
	treeNodeType: 'STATIC' | 'DE' | 'CODELIST' | string;

	/**
	 * 实体节点vo名称
	 *
	 * @type {string}
	 * @memberof ITreeNodeModel
	 */
	controlVoName?: string;

	/**
	 * 上下文菜单
	 *
	 * @type {IParam[]}
	 * @memberof ITreeNodeModel
	 */
	contextMenus?: IParam[];

	/**
	 * 节点排序值应用实体属性
	 *
	 * @type {IParam}
	 * @memberof ITreeNodeModel
	 */
	sortPSAppDEField?: string;
}
